package net.board.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//파일 업로드를 위해서 cos 라이브러리를 사용하기 위해서 import
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

import net.board.db.BoardDAO;
import net.board.db.BoardBean;

public class BoardAddAction implements Action {
	 public ActionForward execute(HttpServletRequest request,HttpServletResponse response) throws Exception{
		
		 BoardDAO boarddao=new BoardDAO();
		 BoardBean boarddata=new BoardBean();
		 ActionForward forward=new ActionForward();
		 
		 //파일이 업로드 될 실제 경로를 저장할 변수
		 String realFolder="";
		 //파일이 업로드 될 상대 경로를 변수
		 String saveFolder="boardupload";
		 int fileSize=5*1024*1024;//업로드하는 파일의 최대크기
		 //상대 경로를 절대 경로로 변환해서 realFolder에 저장
		 realFolder=request.getRealPath(saveFolder);
		 boolean result=false;
		 try{
			 //파일 업로드 구현
			 //파일 명이 동일할 때 처리 -new DefaultFileRenamePolicy()(1을 붙인다)
			 MultipartRequest multi=null;
			 multi=new MultipartRequest(request,
					 realFolder,
					 fileSize,
					 "UTF-8",
					 new DefaultFileRenamePolicy());
			 boarddata.setBOARD_NAME(multi.getParameter("BOARD_NAME"));
			 boarddata.setBOARD_PASS(multi.getParameter("BOARD_PASS"));
			 boarddata.setBOARD_SUBJECT(multi.getParameter("BOARD_SUBJECT"));
			 boarddata.setBOARD_CONTENT(multi.getParameter("BOARD_CONTENT"));
			 //실제 데이터베를 삽입하는 데이터베이스 처리 함수를 호출
			 boarddata.setBOARD_FILE(multi.getFilesystemName((String)multi.getFileNames().nextElement()));
	   		
			 result=boarddao.boardInsert(boarddata);
	   		
			 if(result==false){
				 System.out.println("게시판 등록 실패");
				 return null;
			 }
			 System.out.println("게시판 등록 완료");
	   		
			 //수행이 종료되면 BoardList.bo로 이동
			 forward.setRedirect(true);
			 forward.setPath("./BoardList.bo");
			 return forward;
	   		
		 }catch(Exception ex){
			 ex.printStackTrace();
		 }
		 return null;
	 }  	
}